package com.xuecheng.content.service;

import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.dto.TeachplanMediaDTO;
import com.xuecheng.api.content.model.vo.BindTeachplanMediaVO;
import com.xuecheng.api.content.model.vo.TeachplanVO;
import com.xuecheng.content.entity.Teachplan;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * <p>
 * 课程计划 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-05-06
 */
public interface TeachplanService extends IService<Teachplan> {

    /**
     * 根据课程Id查询课程计划（树形结构）
     *
     * @param courseBaseId
     * @return
     */
    TeachplanDTO queryTreeNodesByCourseId(Long courseBaseId, Long companyId);

    /**
     * 创建或修改课程计划信息
     *
     * @param dto {@link Teachplan} 课程计划信息
     * @return TeachplanDTO 课程计划信息
     */
    TeachplanDTO createOrModifyTeachPlan(TeachplanDTO dto, Long companyId);

    /**
     * 根据课程计划Id删除课程计划信息
     *
     * @param teachPlanId {@link Long} 课程计划Id
     * @param companyId   {@link Long} 公司Id
     */
    void removeTeachPlan(Long teachPlanId, Long companyId);

    /**
     * 教学计划-媒资绑定
     * @param dto {@link TeachplanMediaDTO} 课程计划和媒资关联信息
     * @param companyId 公司Id
     * @return TeachplanMediaDTO
     */
    TeachplanMediaDTO associateMedia(TeachplanMediaDTO dto,Long companyId);
}
